package org.summer.lawyer.domain.vo.brokeragerecord;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.summer.lawyer.domain.BrokerageRecord;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 佣金记录视图对象 brokerage_record
 *
 * @author summer
 * @date 2024-06-27
 */
@Schema(title ="佣金记录视图对象 brokerage_record", description = "佣金记录视图对象 brokerage_record")
@Data
@AutoMapper(target = BrokerageRecord.class)
public class BrokerageRecordVo implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "id", type = "Long", description = "主键ID")
    private Long id;

    /**
     * 微信用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "微信用户ID")
    private Long wxUserId;

    /**
     * 业务ID
     */
    @Schema(title = "bizId", type = "String", description = "业务ID")
    private String bizId;

    /**
     * 业务类型
     */
    @Schema(title = "bizType", type = "String", description = "业务类型")
    private String bizType;

    /**
     * 业务图片
     */
    @Schema(title = "bizPicture", type = "String", description = "业务图片")
    private String bizPicture;

    /**
     * 标题
     */
    @Schema(title = "title", type = "String", description = "标题")
    private String title;

    /**
     * 金额,单位分
     */
    @Schema(title = "totalAmount", type = "Long", description = "金额,单位分")
    private Long totalAmount;

    /**
     * 佣金比例
     */
    @Schema(title = "firstPercent", type = "Integer", description = "佣金比例")
    private Integer firstPercent;

    /**
     * 佣金,单位分
     */
    @Schema(title = "amount", type = "Long", description = "佣金,单位分")
    private Long amount;

    /**
     * 状态（0待结算，1已结算）
     */
    @Schema(title = "status", type = "String", description = "状态（0待结算，1已结算）")
    private String status;

    /**
     * 冻结天数
     */
    @Schema(title = "frozenDay", type = "Integer", description = "冻结天数")
    private Integer frozenDay;

    /**
     * 解冻时间
     */
    @Schema(title = "unfreezeTime", type = "Date", description = "解冻时间")
    private Date unfreezeTime;

    /**
     * 来源下级分销用户ID
     */
    @Schema(title = "sourceUserId", type = "Long", description = "来源下级分销用户ID")
    private Long sourceUserId;

    /**
     * 来源下级分销用户姓名
     */
    @Schema(title = "sourceUserName", type = "String", description = "来源下级分销用户姓名")
    private String sourceUserName;

    /**
     * 下级分销用户等级
     */
    @Schema(title = "sourceUserLevel", type = "Integer", description = "下级分销用户等级")
    private Integer sourceUserLevel;

    /**
     * 用户昵称
     */
    @Schema(title = "nickname", type = "String", description = "用户昵称")
    private String nickname;

    /**
     * 头像
     */
    @Schema(title = "avatar", type = "String", description = "头像")
    private String avatar;

    /**
     * 邀请码
     */
    @Schema(title = "brokerageCode", type = "String", description = "邀请码")
    private String brokerageCode;

    /**
     * 创建时间
     */
    @Schema(title = "createTime", type = "Date", description = "创建时间")
    private Date createTime;
}
